package com.imooc.player;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.List;
/**
 * 播放列表类
 * @author Administrator
 *
 */
public class PlayList {
	private String playListName;//播放列表名字
	private List<Song> musicList;//播放列表歌曲集合
	
	//	无参构造
	public PlayList(){
		
	}
	//	带参构造
	public PlayList(String playListName, List<Song> musicList) {
		super();
		this.setPlayListName(playListName);
		this.setMusicList(musicList);
	}
//	get和set方法
	public String getPlayListName() {
		return playListName;
	}
	public void setPlayListName(String playListName) {
		this.playListName = playListName;
	}
	public List<Song> getMusicList() {
		return musicList;
	}
	public void setMusicList(List<Song> musicList) {
		this.musicList = musicList;
	}
	
//	添加歌曲到播放列表方法
	public void addToPlayList(Song song) {
//
//		System.out.println("将歌曲添加到播放列表:");
//		System.out.println("请输入要添加的歌曲数量：");
//		try {
//			Scanner s = new Scanner(System.in);
//			int n = s.nextInt();
//			for(int i=0;i<n;i++){
//				System.out.println("请输入第"+(i+1)+"首歌曲：");
//				System.out.println("请输入该歌曲的id：");
//				String songId = s.nextLine();
//				System.out.println("请输入该歌曲名称：");
//				String songName = s.nextLine();
//				System.out.println("请输入演唱者：");
//				String songSinger = s.nextLine();
//				song.setId(songId);
//				song.setName(songName);
//				song.setSinger(songSinger);          
				musicList.add(song);
//				}
//			System.out.println("添加"+n+"首歌曲成功！");
//		} catch (Exception e) {
//			System.out.println("出错了！");
//			return;
//		}
		
	}
//	显示播放列表中所有歌曲
	public void displayAllSong(){
//		System.out.println("请输入要显示的播放列表名称：");
//		map.getvalue().
//		Scanner s = new Scanner(System.in);
//		String listName=s.nextLine();
//		if (getPlayListName().equals(listName)) {
//		System.out.println("播放列表所有的歌曲为：");
//			for(int i=0;i<musicList.size();i++) {
//				System.out.println(musicList.get(i));
//			}
			for (Song song : musicList) {
				System.out.println(song);
			}
//		}
//	else{
//			
//			System.out.println("该播放列表不存在，请输入正确的播放列表名称或者创建播放列表");
//			return;
//		}	
	}
//	通过id查询歌曲
	public Song seachSongByid(String id) {
//		System.out.println("请输入要查询的播放列表名称：");
//		try {
//			Scanner s = new Scanner(System.in);
//			String listName=s.nextLine();
//			if (getPlayListName().equals(listName)) {
//			System.out.println("请输入要查询的歌曲id：");
//				String searchId=s.nextLine();
//				boolean b=false;
		for (Song song : musicList) {
			if(song.getId().equals(id)){
				return song;
			}	
		}
		return null;
//				if (!b) {
//					System.out.println("该播放列表中没有这首歌曲！");
//					return null;
//				}
//			}else{
//			System.out.println("该歌曲在播放列表"+listName+"不存在");
//			return null;
//			}
//		} catch (Exception e) {
//			// TODO: handle exception
//			System.out.println("出错啦！");
//		}

	}
	
//	通过名称查询歌曲
	public Song searchSongByName(String n){
		for (Song song : musicList) {
			if(song.getName().equals(n))
				return song;
		}
		return null;
	}
//	修改歌曲
	public void updateSong(Song song){
		
		for(int i=0;i<musicList.size();i++){
			
			if(musicList.get(i).getId().equals(song.getId())){
				musicList.set(i, song);
				return;
			}
		}
	}
//	从播放列表删除歌曲
	public void deleteSong(String id){
		
		for(int i=0;i<musicList.size();i++){
			if(musicList.get(i).getId().equals(id)){
				musicList.remove(musicList.get(i));
				return;
			}
		}
	}
//	导出歌单
	public void exportSong(){
		File f=new File(playListName+"的歌单列表.text");
		try {
			FileOutputStream fos=new FileOutputStream(f);
			ObjectOutputStream oos=new ObjectOutputStream(fos);
			for (Song song : musicList) {
				oos.writeObject(song);
				oos.flush();
			}
			fos.close();
			oos.close();
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
		
	}
}
